﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 练习02
{
    class Program
    {
        //int a = 34;

        // 方法，函数，Main方法、主函数、程序的入口
        static void Main()
        {
            int a = 56;
            // 调用方法，执行顺序不看先写哪一个方法，而是看先调用哪一个方法
            //MyMethod02();
            //MyMethod01();

            // 100 200 是该方法的实参，实际的参数，调用方法的时候的参数
            // MyMethod03(100, 200);
            // MyMethod03(12, 12);
            // Console.WriteLine("a = {0}", a);

            // 不能这样写是因为方法01没有返回值
            //int sumTest = MyMethod01();
            // 使用一个int类型的变量sum，来接收方法05的返回值
            //int sum = MyMethod05(123, 456);
            //Console.WriteLine(sum);

            Console.WriteLine(MyMethod05(111, 222));
        }
        
        static void MyMethod02()
        {
            Console.WriteLine("这是我写的第二个方法");
            int a = 12;     // a是方法的局部变量
            int b = 34;
            Console.WriteLine(a - b);
        }

        // 没有返回值，没有参数的一个名字为MyMethod01的方法
        static void MyMethod01()
        {
            // 大括号厘米的内容是方法体
            Console.WriteLine("这是我写的第一个方法~");
            int a = 12;
            int b = 34;
            Console.WriteLine(a + b);
        }

        /// <summary>
        /// 没有返回值，有两个参数的方法,bilibili
        /// </summary>
        /// <param name="a">一个int类型的数，形参是形式上的参数，是定义方法的时候的参数</param>
        /// <param name="b">一个int类型的数</param>
        static void MyMethod03(int a, int b)
        {
            // 这是一个加法
            Console.WriteLine("这是一个加法");

            // 调用方法1
            MyMethod01();

            Console.WriteLine(a + b);
        }

        static void MyMethod04(int a = 0, int b = 0)
        {
            a = 11;
            b = 12;
            Console.WriteLine(a + b);
        }

        /// <summary>
        /// 这是一个有int类型的返回值，并且有两个参数的方法
        /// </summary>
        /// <param name="a"></param>
        /// <param name="b"></param>
        /// <returns></returns>
        static int MyMethod05(int a, int b)
        {
            Console.WriteLine("此方法有返回值，有两个参数");
            return a + b;
        }
    }
}
